package org.gwt.client.vista.dialogos;

import org.gwt.client.controlador.BotonListener;

import com.extjs.gxt.ui.client.widget.Dialog;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.form.FieldSet;
import com.extjs.gxt.ui.client.widget.form.FormPanel;
import com.extjs.gxt.ui.client.widget.form.NumberField;
import com.extjs.gxt.ui.client.widget.form.SimpleComboBox;
import com.extjs.gxt.ui.client.widget.form.TextField;
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
import com.extjs.gxt.ui.client.widget.layout.FormData;

public class DialogoPunto2D extends Dialog{

	private Button botonOk;
	private TextField<String> textFieldNombre;
	private BotonListener botonListenerOkPunto;
	private NumberField numberFieldX, numberFieldY;
	private FieldSet fieldSetDatos;
	private final SimpleComboBox<String> simpleComboCiudad;

	public DialogoPunto2D() {
		botonOk = new Button("Ok");
		setShadow(false);
		setHeading("Vector");
		setWidth("300");
		setButtons(Dialog.CANCEL);
		setHideOnButtonClick(true);
		addButton(botonOk);

		FormPanel formPanelVector = new FormPanel();
		formPanelVector.setPadding(5);
		formPanelVector.setBodyBorder(false);
		formPanelVector.setHeaderVisible(false);
		add(formPanelVector);

		String ciudadA = new String("Ciudad A");
		String ciudadB = new String("Ciudad B");
		String ciudadC = new String("Ciudad C");
		simpleComboCiudad = new SimpleComboBox<String>();
		simpleComboCiudad.setFieldLabel("Asociado a");
		simpleComboCiudad.setTriggerAction(TriggerAction.ALL);
		simpleComboCiudad.add(ciudadA);
		simpleComboCiudad.add(ciudadB);
		simpleComboCiudad.add(ciudadC);
		simpleComboCiudad.setEditable(false);
		simpleComboCiudad.setSimpleValue(ciudadA);


		numberFieldX = new NumberField();
		numberFieldX.setFieldLabel("X:");

		numberFieldY = new NumberField();
		numberFieldY.setFieldLabel("Y:");

		formPanelVector.add(simpleComboCiudad, new FormData("100%"));
		formPanelVector.add(numberFieldX, new FormData("100%"));
		formPanelVector.add(numberFieldY, new FormData("100%"));

//	    inicializarBotonOkPunto();
	}

	public FieldSet getFieldSetDatos(){
		return fieldSetDatos;
	}

	public TextField<String> getTextFieldNombre(){
		return textFieldNombre;
	}

	public NumberField getNumberFieldX(){
		return numberFieldX;
	}

	public NumberField getNumberFieldY(){
		return numberFieldY;
	}

//	private void inicializarBotonOkPunto() {
//		botonOk.addSelectionListener(new SelectionListener<ButtonEvent>() {
//			public void componentSelected(ButtonEvent ce) {
//				botonListenerOkPunto.botonPuntoEvent();
//			}
//		});
//	}

	public void addBotonListener(BotonListener listener){
		botonListenerOkPunto = (listener);
	}

	public void removeBotonListener(BotonListener listener){
		botonListenerOkPunto = null;
	}

	public void hide(boolean clear){
		if (clear) clear();
		hide();
	}

	public void clear(){
		numberFieldX.clear();
		numberFieldY.clear();
	}
}
